package com.CST.service.ys;

import com.CST.dto.ys.YsResultDTO;
import com.CST.entity.ys.YsSubject;
import com.CST.vo.ys.YsAllYearBudgetBusinessResultsVO;
import com.CST.vo.ys.YsAllYearBudgetManageResultsVO;
import com.CST.vo.ys.YsBudgetResultsVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author nmx
 * @since 2023-05-28
 */
public interface YsBudgetResultsService extends IService<YsSubject> {

    /**
     * 预算执行结果：业务职能
     *
     * @param dto 查询条件
     * @return
     */
    PageInfo<YsBudgetResultsVO> listYsBusinessResults(YsResultDTO dto);

    /**
     * 导出数据
     *
     * @param response response
     */
    void exportExcelYsBusinessResults(HttpServletResponse response,YsResultDTO dto);

    /**
     * 预算执行结果：管理职能
     *
     * @param dto 查询条件
     * @return
     */
    PageInfo<YsBudgetResultsVO> listYsManageResults(YsResultDTO dto);

    /**
     * 导出数据
     *
     * @param response response
     */
    void exportExcelYsManageResults(HttpServletResponse response,YsResultDTO dto);

    /**
     * 全院预算执行结果：业务职能
     *
     * @param dto
     * @return
     */
    YsAllYearBudgetBusinessResultsVO listBusinessAllResults(YsResultDTO dto);

    /**
     * 导出数据
     *
     * @param response response
     */
    void exportExcelYsBusinessAllResults(HttpServletResponse response, YsResultDTO dto) throws IOException;

    /**
     * 全院预算执行结果：管理职能
     *
     * @param dto
     * @return
     */
    PageInfo<YsAllYearBudgetManageResultsVO> listYsManageAllResults(YsResultDTO dto);

    void exportExcelYsManageAllResults(HttpServletResponse response, YsResultDTO dto);
}
